Le menu avec onglets

Nous allons ici construire un menu contenant des onglets.

Construction

Commençons par créer la fonction qui englobera la création du menu pour le joueur :

public void CreatePanel(Player player) { }

Ensuite, appelons le constructeur en utilisant le type Tab :

UIPanel tabPanel = new UIPanel("Menu avec onglets", UIPanel.PanelType.Tab);

Nous pouvons déjà ajouter un bouton Fermer avec la méthode AddButton() qui fermera le menu que nous intitulerons panel :

tabPanel.AddButton("Fermer", (panel) =>
{
    player.ClosePanel(panel);
});

Et un bouton Valider qui exécutera le code associé à l’onglet sélectionné :

tabPanel.AddButton("Valider", (panel) =>
{
    panel.SelectTab();
});

Nous allons désormais ajouter un onglet avec la méthode AddTabLine() ayant comme titre Onglet n°1 et qui affichera dans la console L’onglet n°1 a été sélectionné :

tabPanel.AddTabLine("Onglet n°1", (panel) =>
{
    Debug.Log("L'onglet n°1 a été selectionné");
});

Il ne nous reste plus qu’à afficher le menu au joueur avec la méthode ShowPanelUI() :

player.ShowPanelUI(tabPanel);

Résultat

Le code complet

public void CreatePanel(Player player)
{
    UIPanel tabPanel = new UIPanel("Menu avec onglets", UIPanel.PanelType.Tab);

    tabPanel.AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    });

    tabPanel.AddButton("Valider", (panel) =>
    {
        panel.SelectTab();
    });

    tabPanel.AddTabLine("Onglet n°1", (panel) =>
    {
        Debug.Log("L'onglet n°1 a été selectionné");
    });

    player.ShowPanelUI(tabPanel);
}

Une version simplifiée

public void CreatePanel(Player player)
{
    UIPanel tabPanel = new UIPanel("Menu avec onglets", UIPanel.PanelType.Tab)
    .AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    })
    .AddButton("Valider", (panel) =>
    {
        panel.SelectTab();
    })
    .AddTabLine("Onglet n°1", (panel) =>
    {
        Debug.Log("L'onglet n°1 a été selectionné");
    });

    player.ShowPanelUI(tabPanel);
}

ℹ️ Remarques
- Vous pouvez également définir un code global dans le bouton valider et utiliser l’identifiant de l’onglet sélectionné avec tabPanel.selectedTab